Microsoft Exchange Web Services (EWS) provides the functionality to enable client applications to communicate with an Exchange server. EWS provides access to much of the same data that is made available through Microsoft Office Outlook. EWS clients can integrate Outlook data into Line-of-Business (LOB) applications. Simple Object Access Protocol (SOAP) provides the messaging framework for messages sent between the client application and the Exchange server. The SOAP messages are typically sent by Hypertext Transfer Protocol (HTTP). EWS's application programming interface (API) provides clients with easy access to an Exchange server's data, as well as an API for data manipulation, such as creating items, for example, emails and meetings. An Exchange server's data is also referred to as an Exchange store. A well-known API call is the “CreateItem” operation that creates items in the Exchange store. API calls are also referred to as operations, commands, and requests. The CreateItem call can be used to create items such as calendar items, email messages, meeting requests, tasks, and contacts.
When creating items, for example, sending emails, an important requirement is that recipients do not receive the same item multiple times. Such an issue is avoided in most mail/calendar clients as a built in feature. The use of the EWS API does not provide for this native approach.
For example, when using the EWS API, a user may send an email, and then the connection from the user's client machine to the EWS server times out. In this example, if the email was successfully sent from the server, the client does not have confirmation that the email was sent, and sends the email again. The recipient will then receive two emails. In a second example, a meeting calendar item is sent from a user to multiple recipients, and the connection from the user's client machine to the EWS server is aborted by client. In this second example, another invitation is sent, resulting in duplicate meeting requests.